API de planificación anticipada
La API Plan-ahead está destinada a enviar horarios con anticipación. Para control en vivo, consulta Control en vivo de MQTT en su lugar.
Lo que necesitas
- Un nombre de usuario y una contraseña de API. Puedes usar tu cuenta de Insights para esto, o solicitar una cuenta de API enviando un correo electrónico a support@eniris.be, mencionando claramente el número de serie de tu dispositivo.
- Entorno de desarrollo de Python (u otro cliente MQTT). Esta guía utiliza un ejemplo básico escrito en Python para ayudarte a comenzar con MQTT y el envío de comandos. Recomendamos usar Python por su facilidad de uso, pero se admite cualquier otro cliente MQTT.
Configuración inicial (Punto de partida para nuevos usuarios)
1. Encuentra los IDs de los dispositivos que deseas controlar
El ID del dispositivo (también llamado nodeId) es un identificador único para cada dispositivo en nuestro sistema y se usa al enviar comandos a los dispositivos.
En este momento, la forma más fácil de obtener tus IDs es navegando a:
http://<CONTROLLER_IP>/debugger
Expande el cuadro 'Metadatos' y anota cada nodeId de todos los dispositivos que te gustaría controlar. Necesitarás estos IDS en un paso posterior.

2. Agrega tus dispositivos
Inicia sesión en la interfaz de puesta en marcha y asegúrate de que los dispositivos estén añadidos al SmartgridOne Controller.
3. Agrega la señal externa de la API




4. Ingresa el token del recolector
Simplemente ingresa el número de serie del SmartgridOne Controller aquí y haz clic en enviar.
5. Selecciona dispositivos para incluir
En esta página, tienes la opción de incluir/excluir dispositivos para el control remoto. Asegúrate de marcar todas las casillas de verificación de los dispositivos que te gustaría incluir.

6. Se agregó la fuente de datos
La interfaz de control remoto ahora ha sido activada en el SmartgridOne Controller. Ahora puedes comenzar a enviar tus comandos a los dispositivos.
¡No olvides configurar un régimen de respaldo en el SmartgridOne Controller! Se necesita configurar un modo de control local además de las señales de API externas que envías. El control local se utiliza como respaldo en caso de que el SmartgridOne Controller pierda conexión a internet o haya otras causas que impidan que la señal de API llegue al SmartgridOne Controller.
Envía comandos de control remoto utilizando Python
A continuación, se incluye un fragmento de Python sobre cómo controlar solar o batería.
Consulta el documento Guía de Aplicación - Puntos de Configuración Remota para una explicación más completa con todas las políticas.
Paquete requerido:
pip install eniris
# %% Imports
from eniris import ApiDriver
from eniris.point import Point
from eniris.point.writer import (PointDuplicateFilter, DirectPointToTelemessageWriter)
from eniris.telemessage.writer import PooledTelemessageWriter
from datetime import datetime, timezone
# %% Constants
COMMAND_UNTIL = '2024-04-16T10:26:00+02:00' # AAAA-MM-DDTHH:MM:SS+00:00
SN = '<REPLACE>'
COMMAND = fields = {'policy': 2, 'powerSetpoint_W': 0.0} # 0: Predeterminado (autoconsumo); 2: Seguir punto de referencia
# %% Start curtailment
curtail_until = datetime.fromisoformat(COMMAND_UNTIL).astimezone(timezone.utc)
print(f'Siguiendo comando hasta: {curtail_until}')
apiUsername = "<REPLACE>"
apiPassword = "<REPLACE>"
# Create an API drivers and a point writer with the desired functionality
driver = ApiDriver(apiUsername, apiPassword)
writer = PointDuplicateFilter(
DirectPointToTelemessageWriter(
PooledTelemessageWriter(
authorizationHeaderFunction=driver.accesstoken,
params={"u": SN},
)
)
)
namespace = {'database': 'SGC', 'retentionPolicy': 'rp_one_s'}
tags = {
"serialNr": SN,
"nodeId": '<REPLACE>',
}
writer.writePoints([Point(namespace, 'remoteControlSignals', curtail_until, tags, fields)])
writer.flush()
print('Enviado')
Presta especial atención a:
- El 'COMMAND_UNTIL': Este es un timestamp consciente de la zona horaria que denota el tiempo de finalización de tu comando.
- El 'COMMAND': Esto debe cambiarse de acuerdo con el comando que quisieras ejecutar.
- Por ejemplo: para baterías, la política 2 con powerSetpoint_W en 1000 cargará la batería a 1 kW.
- Para solar, la política 2 con powerSetpoint_W en 0 desactivará la producción solar.
- Después de que tu comando haya terminado, automáticamente volverá al control predeterminado (según lo configurado en el SmartgridOne Controller).
- (se admiten políticas más avanzadas, pero aún no se han añadido a esta guía)
- La variable 'tags': Esto debe cambiarse de acuerdo con el SN del SmartgridOne Controller, donde nodeId debe establecerse en el ID del dispositivo que se extrajo en un paso anterior de este tutorial.
Consulta el documento Guía de Aplicación - Puntos de Configuración Remota para una explicación más completa con todas las políticas.